import {FormEls} from "../../../core"

/**
 * 功能框
 */
class SheetFormManager<Model> {
    /**
     * 表单子项label长度
     */
    labelWidth: string
    /**
     * 表单校验
     */
    required?: Array<keyof Model>
    /**
     * 初始值
     */
    initValue?: Partial<Model>
    /**
     * 绑定数据前操作
     */
    bindData?: (data: Model) => Promise<Model>
    /**
     * 提交数据前操作
     */
    beforeSubmit?: (data: Model) => Promise<Model> | Model
    /**
     * 渲染列表
     */
    els: FormEls<Model>[]

    /**
     * 构造函数
     */
    constructor(els: FormEls<Model>[], labelWidth: string) {
        this.els = els
        this.labelWidth = labelWidth
    }
}

/**
 * 暴露
 */
export default SheetFormManager


